package com.yipao.core.util;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Stream;

/**
 * 日期格式化工具类
 *
 * @author tianhao
 */
public class DateTimeUtil {

    /**
     * 格式 yyyy年MM月dd日 HH:mm:ss
     *
     * @param dateTime
     * @return
     */
    public static String getDateTimeDisplayString(LocalDateTime dateTime) {
        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String strDate2 = dtf2.format(dateTime);

        return strDate2;
    }

    /**
     * 获取当前时间
     * @return
     */
    public static String now() {
        return DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").
                format(LocalDateTime.now());
    }

    /**
     * 获取两个日期之间的所有日期
     *
     * @param startTime 开始日期
     * @param endTime   结束日期
     * @return
     */
    public static List<String> getDiffDays(String startTime, String endTime) {

        // 返回的日期集合
        List<String> days = new ArrayList<>();

        DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        LocalDate tempStart = LocalDate.parse(startTime, fmt);

        LocalDate tempEnd = LocalDate.parse(endTime, fmt);
        // 日期加1(包含结束)
        tempEnd = tempEnd.plusDays(1);
        while (tempStart.isBefore(tempEnd)) {
            days.add(fmt.format(tempStart));
            tempStart = tempStart.plusDays(1);
        }
        return days;
    }

    public static void main(String[] args) {
        System.out.println(now());
    }
}
